home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 5 / BBS in a Box -Volume V (BBS in a Box) (April 1992).iso / Files / Apple / Apple II TNs(Text).cpt / Apple II TNs(Text) / IIGS / TN.IIGS.026 / TN.IIGS.026
Encoding:
Text File  |  1989-11-15  |  13.2 KB  |  334 lines  |  [TEXT/pdos]

  1. Apple II
  2. Technical Notes
  3. _____________________________________________________________________________
  4.                                                   Developer Technical Support
  5.  
  6.  
  7. Apple IIGS
  8. #26:    ROM Revision Summary
  9.  
  10. Revised by:    Matt Deatherage                                 September 1989
  11. Written by:    Rilla Reynolds                                    October 1987
  12.  
  13. This Technical Note summarizes revisions to the Apple IIGS ROM.
  14. Changes since November 1988:  Revised to cover ROM 3.
  15. _____________________________________________________________________________
  16.  
  17. Apple currently supports two configurations of the Apple IIGS ROM, ROM 1 and 
  18. ROM 3.  In August 1989, Apple IIGS computers began shipping with a 256K ROM, 
  19. referred to as version 3 or ROM 3 (ROM 2 was skipped since there was already 
  20. enough confusion about the first version, ROM 0, and the second version, ROM 
  21. 1).  System Software continues to support ROM 1, but it no longer supports ROM 
  22. 0.  Authorized Apple dealers can upgrade older systems (i.e., machines with 
  23. serial numbers lower than E704...) to ROM 1 upon request.
  24.  
  25. ROM 1 requires System Software 2.0 or later, while ROM 3 requires System 
  26. Software 5.0 or later.  Although applications may work using older system 
  27. software releases, they may not function properly due to the coordination of 
  28. system software and ROM revisions.
  29.  
  30.  
  31. Changes from ROM 0 to ROM 1
  32.  
  33. ADB
  34.  
  35.   o  Absolute ADB devices are now supported correctly.
  36.   o  ADB fatal system error code is now $0911 instead of $0400.
  37.   o  ADBReset routine now delays about 160 microseconds before reading 
  38.      the buttons.
  39.   o  ADBStatus TRUE is now $FFFF instead of $0001.
  40.   o  All ADB error codes now include the tool number.
  41.   o  SRQrmv no longer crashes when you make the call with a command 
  42.      pending.
  43.  
  44. AppleDisk 3.5
  45.  
  46.   o  AppleDisk 3.5 Macintosh block reads and writes now work as 
  47.      documented.
  48.   o  Extended status call now returns bit 0 = 1 if AppleDisk 3.5 media 
  49.      has been switched since the last READ, WRITE, or FORMAT.
  50.   o  New AppleDisk 3.5 status calls have been implemented to get 
  51.      internal variable and work buffer starting addresses.
  52.  
  53. AppleTalk
  54.  
  55.   o  Link Access Protocol (LAP) inter-packet gap now handles added SCC 
  56.      delay.
  57.   o  Name Binding Protocol (NBP) now considers uppercase and lowercase 
  58.      characters identical.
  59.   o  A nonexistent protocol no longer hangs the dispatcher.
  60.  
  61. Desk Manager
  62.  
  63.   o  SaveScreen and RestoreScreen now work.
  64.  
  65. Event Manager
  66.  
  67.   o  Now auto-key events are not posted in the queue unless the queue 
  68.      is empty.
  69.   o  EMStartUp and EMShutDown code has been optimized.
  70.   o  Event Manager now returns an error instead of crashing when there 
  71.      is an attempt to post an invalid event.
  72.  
  73. Integer Math
  74.  
  75. New Changes:
  76.   o  Optimized the multiply routine.
  77. RAM patches moved to ROM:
  78.   o  Changes to FixMul, FixRatio, and SDivide.
  79.   o  SDivide recovers from a divide by zero operation.
  80.   o  New calls:  FracMul, FixDiv, FracDiv, FixRound, FracSqrt, FracCos, 
  81.      FracSin, FixATan2, HiWord, LoWord, Long2Fix, Fix2Long, Fix2Frac, 
  82.      Frac2Fix, Fix2X, Frac2X, X2Fix, X2Frac.
  83.  
  84. Memory Manager
  85.  
  86.   o  Optimized Purge and Compact for banks 0 and 1 and moved from RAM 
  87.      to ROM.
  88.   o  RAM patches and enhancements moved to ROM.
  89.   o  RAMdisk now returns bytes transferred count on DIB call.
  90.   o  SetHandleSize makes a handle temporarily unpurgeable while 
  91.      changing handle size.
  92.  
  93. Miscellaneous Tools
  94.  
  95. RAM patches and enhancements moved to ROM:
  96.   o  AbsClamp fixes.
  97.   o  Battery RAM routines work if data bank is set to a bank other than 
  98.      bank data is in.
  99.   o  Firmware entry calls now return processor status in high byte 
  100.      instead of low byte.
  101.   o  GetAddr with ref number $000E returns SerFlag address for SCC 
  102.      interrupts (useful if not using serial firmware).
  103.   o  ID manager can reuse discarded IDs.
  104.   o  Keyboard interrupts now enable VBL interrupts.
  105.   o  Munger now works with 1-char strings and returns with A=0.
  106.   o  New SysBeep call.
  107.   o  PackBytes and UnpackBytes return with A=0.
  108.   o  ReadBParam and ReadBRAM error codes corrected.
  109.   o  WriteBParam and WriteBRAM do not return error codes (this is a 
  110.      documentation change).
  111.   o  WriteTimeHex Bad Parameter error code is now $31.
  112.  
  113. Monitor
  114.  
  115.   o  80-column screens maintained if break occurs and Pascal protocol 
  116.      in effect.
  117.   o  AppleSoft tabbing in 80-column mode now works correctly.
  118.   o  Control Panel's Maximum RAM Disk Size increased to 8128K instead 
  119.      of 4096K.
  120.   o  Firmware version number returned is $1 instead of $0.
  121.   o  Interrupts now disabled during paddle read routines.
  122.   o  Interrupts re-enabled after fatal system error (for debug DAs).
  123.   o  Mouse clamps with positive minimum and negative maximum works 
  124.      (e.g., $6000 min, $8000 max).
  125.   o  New monitor command, pound sign (#), installs monitor entry and 
  126.      memory peeker classic desk accessories (unless already installed), 
  127.      accessible via the Control Panel.  Reinstalled automatically on 
  128.      reset;  disabled by power off only.
  129.   o  New monitor command, Control-N, clears m, e, and x bits for native 
  130.      mode.  (Control-R still  switches to 8-bit, emulation mode.)
  131.   o  RESET entry point at $00FA62 sets state register to $0C and shadow 
  132.      register to $08.
  133.   o  Shadowing of the Super Hi-Res area in Bank 1 is no longer enabled 
  134.      automatically.
  135.   o  WAIT routine now always exits with C=1.
  136.  
  137. QuickDraw II
  138.  
  139. RAM patches and enhancements moved to ROM:
  140.   o  640-mode pen masks now work when portRect origin not a multiple of 8.
  141.   o  Arcs, ovals, and round rects can be drawn across bank boundaries.
  142.   o  Changes to round drawing routines: PPToPort, GetFontLore, 
  143.      GetROMFont, and InflateTextBuffer.
  144.   o  Current bank bytes 100...106 no longer modified by scaling and 
  145.      mapping calls.
  146.   o  FontFlags 1 and 2 added for pen width and color control.
  147.   o  FramePoly returns with A=0.
  148.   o  GetPort returns all four bytes of GrafPort.
  149.   o  HideCursor and ShowCursor work correctly with obscured cursor.
  150.   o  MapRgn now works on rectangular regions.
  151.   o  Pixel painting routines support QuickDraw Auxiliary Tool Set 
  152.      stretching and shrinking.
  153.   o  PPToPort now clips correctly to the current portRect.
  154.   o  QDStartUp and QDShutDown save and restore the scan line interrupt 
  155.      vector.
  156.   o  RectInRgn bug fixed.
  157.   o  ScrollRect works when the ClipRgn and VisRgn are not rectangular.
  158.   o  SetSysFont works.
  159.   o  StdPixels now returns with A=0 if the pen is not visible.
  160.   o  Text underline bug fixed.
  161.   o  TextBounds works.
  162. New QuickDraw changes:
  163.   o  Busy flag now maintained correctly by ClosePort, OffsetRgn, 
  164.      InsetRgn, KillPoly, FillRect, FrameOval, PaintOval, EraseOval, 
  165.      InvertOval, FillOval, FrameArc, PaintArc, EraseArc, InvertArc, 
  166.      FillArc, FrameRRect, PaintRRect, EraseRRect, InvertRRect, and 
  167.      FillRRect.
  168.   o  Cursor appears in correct Super Hi-Res mode as determined by the 
  169.      low byte's bit 7 (320/640) of the MasterSCB.
  170.  
  171. SANE
  172.  
  173.   o  Elems now can be called from any part of memory.
  174.   o  HALT exception jumping through the incorrect vector fixed.
  175.   o  Integer overflow during conversion reported.
  176.   o  STATUS call moved to ROM.
  177.  
  178. Scheduler
  179.  
  180.   o  Scheduler now accepts a flush function call.
  181.   o  Task-handling RAM patch (on System Disk 1.0 and later) moved to 
  182.      ROM.
  183.  
  184. Serial I/O
  185.  
  186.   o  First character after an XON is no longer trashed when buffering 
  187.      is not enabled.
  188.   o  If serial mode bit 17 = 1, parity and framing error suppression 
  189.      are defeated.
  190.   o  Parity, baud, and data format commands work with buffering.
  191.   o  STATUS call will not report that a character is ready if the 
  192.      character arrives with a parity or framing error.
  193.   o  STATUS call works correctly with XON/XOFF protocol.
  194.  
  195. SmartPort
  196.  
  197.   o  PR#5, following a PR#5 with I/O error (i.e., no disk in drive), 
  198.      now boots as expected.
  199.   o  SmartPort manipulates only Slot 6 motor on detect so the IWM can 
  200.      run in fast mode.
  201.  
  202. Sound
  203.  
  204.   o  Fixed bug in FFStopSound call.
  205.   o  Fixed low-level RAM read/write bug.
  206.   o  Interrupts are disabled when the internal bell is active.
  207.   o  Interrupts no longer need to be disabled when accessing sound RAM.
  208.   o  New sound diagnostics with the following error codes:  $0C001 = 
  209.      failed RAM data test, $0C002 = RAM address test, $0C003 = register 
  210.      data test, and $0C004 = control register test.
  211.   o  Sound Manager RAM patches and enhancements moved to ROM.
  212.  
  213. Text Tools
  214.  
  215. RAM patches moved to ROM:
  216.   o  RAM patches moved to ROM for Writing and ErrorWriting routines.
  217.   o  TextInit Illegal device error now is in 16-bit mode instead of 8.
  218.  
  219. Tool Locator
  220.  
  221.   o  Optimized tool dispatcher.
  222.   o  ROM tools present on a memory expansion card are installed.
  223.  
  224.  
  225. Changes from ROM 1 to ROM 3
  226.  
  227. ROM 3 is 256K (double the size of ROM 1) and contains several tools which do 
  228. not exist in ROM 1.  The patch file TS3 fixes known bugs in ROM 3 which were 
  229. discovered after it was frozen.  ROM 3 tools are basically System Software 5.0 
  230. tools, and the System Software 5.0 documentation covers these tools in detail.  
  231. This Note only documents non-tool changes.
  232.  
  233. AppleDisk 3.5 and SmartPort
  234.  
  235.   o  Use new routines for all block reads to fast RAM to eliminate 
  236.      double buffering.
  237.   o  The extended DIB status call returns the device subtype byte $C1.
  238.   o  Fixed anomalies described in SmartPort Technical Note #6, Apple 
  239.      IIGS SmartPort Errata.
  240.   o  Fixed a ROM 1 bug that caused Write Protected to be returned with 
  241.      higher priority than Device Offline for the ProDOS STATUS call.
  242.  
  243. AppleTalk
  244.  
  245.   o  AppleTalk moved to slots 1 and 2 from slot 7.
  246.  
  247. Control Panel CDA
  248.  
  249.   o  The original Options menu is now the Keyboard menu and does not 
  250.      contain mouse parameters.
  251.   o  A new Mouse menu is present.  The new keyboard microcontroller 
  252.      allows finer control of mouse tracking, so a selection procedure 
  253.      better than yes or no is present.  Parameters are also available 
  254.      to set the keyboard mouse feature, which allows the numeric keypad 
  255.      to emulate a mouse.
  256.   o  Added an option to resize the RAM disk on the next reset in the 
  257.      RAM Disk menu.  This option resets to No after one reboot and 
  258.      resizing so the RAM disk is not accidently reformatted on every 
  259.      boot thereafter.
  260.   o  If slot 7 is set to AppleTalk, the Control Panel displays a 
  261.      warning if neither slot 1 nor slot 2 is similarly set.
  262.   o  The Printer Port and Modem Port menus now display only those 
  263.      parameters that may be changed if AppleTalk is the selection for 
  264.      those ports.
  265.   o  The RAM disk no longer has minimum and maximum settings, but 
  266.      rather one RAM disk size setting.
  267.  
  268. Monitor
  269.  
  270.   o  Enhanced memory searching commands to automatically cross bank 
  271.      boundaries.
  272.   o  Added Step and Trace debugging functions.
  273.   o  Now provide vectors for the same functionality as the GS/OS System 
  274.      Service calls MEMORY_MOVER, DYN_SLOT_ARBITER and SET_SYS_SPEED in 
  275.      bank $E1.
  276.   o  Now resize the RAM disk when the system is rebooted with the 
  277.      Control-Open Apple-Shift-Reset key combination.
  278.   o  Handle text page 2 shadowing and power-up bits in the new CYA 
  279.      chip.
  280.   o  Flash the border if the sound volume is set to zero and a beep is 
  281.      necessary.
  282.   o  In ROM 1 and earlier, the Miscellaneous Tools mouse firmware 
  283.      called the 8-bit mouse routines in the $C400 space to do the work.  
  284.      In ROM 3, the 8-bit routines call the 16-bit routines to read the 
  285.      hardware.  This change effectively means those programs which use 
  286.      16-bit mouse calls (including desktop applications through the 
  287.      Event Manager) may use the mouse when slot 4 is set to Your Card.
  288.   o  Slots 1 and 2 may now be set to Printer, Modem, AppleTalk, or Your 
  289.      Card.  With System Software 5.0, slot 7 does not need to be set to 
  290.      AppleTalk to use an AppleTalk network, although one can do it for 
  291.      compatibility.  There is no transparent printing firmware in slot 7.
  292.   o  The Alternate Display Mode CDA no longer sets the system to fast 
  293.      speed when normal speed is selected in the Control Panel.
  294.   o  Added a new command, {val}=V, to set the video screen display I/O 
  295.      switches when resuming a program.
  296.   o  Control-T command now works as a toggle--executing it once changes 
  297.      to text mode, but now executing it again switches back to the 
  298.      previous video mode   You may change this saved video mode with 
  299.      the =V command.
  300.   o  Battery RAM value $59 now controls the presence of the Visit 
  301.      Monitor and Memory Peeker CDAs.  If this byte has the high bit set 
  302.      at boot time, the CDAs are automatically installed.
  303.   o  The Monitor and Memory Peeker both allow the use of Control-X to 
  304.      terminate a long display (i.e., a handle list or memory dump).
  305.  
  306. Serial I/O
  307.  
  308.   o  XON and XOFF are no longer sent with the high bit set when 
  309.      buffering is enabled.
  310.   o  Terminal mode cursor is more consistent with the rest of the 
  311.      system.
  312.   o  Extended Interface calls now return errors in the carry and the 
  313.      accumulator.
  314.  
  315. Toolbox
  316.  
  317. The following tools are now in ROM:
  318.  
  319.   o  Window Manager
  320.   o  Menu Manager
  321.   o  Control Manager
  322.   o  Line Edit
  323.   o  Dialog Manager
  324.   o  Scrap Manager
  325.   o  Font Manager
  326.   o  List Manager
  327.  
  328.  
  329. Further Reference
  330. _____________________________________________________________________________
  331.   o  Apple IIGS Firmware Reference
  332.   o  Apple IIGS Toolbox Reference
  333.   o  Apple IIGS Technical Note #52, Loading and Special Memory
  334.   o  SmartPort Technical Note #6, Apple IIGS SmartPort Errata